#pragma once
#include "e2d/core/Entity.h"
#include "e2d/core/Type.h"
#include "e2d/core/components.h"

#include "e2d/ui/State.h"

#include "fxcc/imgui/Layer.h"

#include "e2d/imgui/impl/FinalEditor.h"
#include "e2d/yml/impl/FinalSerializer.h"

namespace e2d
{
	struct HierarchyEditor :public fxcc::imgui::Layer
	{
		std::shared_ptr<e2d::Scene> m_Scene{ 0 };

		HierarchyEditor();
		
		bool m_RefreshScroolY{ true };

		void RefreshY();

		void ViewFunc();

		void HandleFunc();

		void Edit();

		bool ComboLabels(const std::vector<std::string>& labels, std::string& target);

		e2d::FinalEditor m_FinalEditor;

	};
};